package github.kawaiior.yuanchuxiuzhen.core.init;

import github.kawaiior.yuanchuxiuzhen.Yuanchuxiuzhen;
import github.kawaiior.yuanchuxiuzhen.common.entity.addon.*;
import github.kawaiior.yuanchuxiuzhen.common.entity.hell.CoffinGuardEntity;
import github.kawaiior.yuanchuxiuzhen.common.entity.hell.SoulIronBeastEntity;
import github.kawaiior.yuanchuxiuzhen.common.entity.hell.SoulWanderingEntity;
import net.minecraft.entity.EntityType;
import net.minecraftforge.fml.RegistryObject;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;

public class EntityInit {
    public static final DeferredRegister<EntityType<?>> ENTITIES = DeferredRegister.create(ForgeRegistries.ENTITIES, Yuanchuxiuzhen.MODID);

//    public static final RegistryObject<EntityType<ExampleEntity>> EXAMPLE_ENTITY =
//            ENTITIES.register("example_entity",
//                    ()->ExampleEntity.TYPE);

    public static final RegistryObject<EntityType<CoffinGuardEntity>> COFFIN_GUARD =
            ENTITIES.register("coffin_guard", ()->CoffinGuardEntity.TYPE);

    public static final RegistryObject<EntityType<SoulIronBeastEntity>> SOUL_IRON_BEAST =
            ENTITIES.register("soul_iron_beast", ()->SoulIronBeastEntity.TYPE);

    public static final RegistryObject<EntityType<SoulWanderingEntity>> SOUL_WANDERING_ENTITY =
            ENTITIES.register("soul_wandering", ()->SoulWanderingEntity.TYPE);

    // 拓展
    public static final RegistryObject<EntityType<RainFrogEntity>> RAIN_FROG_ENTITY =
            ENTITIES.register("rain_frog", ()->RainFrogEntity.TYPE);
    public static final RegistryObject<EntityType<HostCrabEntity>> HOST_CRAB_ENTITY =
            ENTITIES.register("host_crab", ()->HostCrabEntity.TYPE);
    public static final RegistryObject<EntityType<PuBirdEntity>> PU_BIRD_ENTITY =
            ENTITIES.register("pu_bird", ()-> PuBirdEntity.TYPE);
    public static final RegistryObject<EntityType<EagleOwlEntity>> EAGLE_OWL_ENTITY =
            ENTITIES.register("eagle_owl", ()->EagleOwlEntity.TYPE);
    public static final RegistryObject<EntityType<ArmyAntEntity>> ARMY_ANT_ENTITY =
            ENTITIES.register("army_ant", ()-> ArmyAntEntity.TYPE);
    public static final RegistryObject<EntityType<StoneGiantEntity>> STONE_GIANT_ENTITY =
            ENTITIES.register("stone_giant", ()-> StoneGiantEntity.TYPE);
    public static final RegistryObject<EntityType<BoneWolfEntity>> BONE_WOLF_ENTITY =
            ENTITIES.register("bone_wolf", ()-> BoneWolfEntity.TYPE);
    public static final RegistryObject<EntityType<ThunderDeerEntity>> THUNDER_DEER_ENTITY =
            ENTITIES.register("thunder_deer", ()-> ThunderDeerEntity.TYPE);
    public static final RegistryObject<EntityType<StoneCamelEntity>> STONE_CAMEL_ENTITY =
            ENTITIES.register("stone_camel", ()-> StoneCamelEntity.TYPE);
    public static final RegistryObject<EntityType<BeastKingEntity>> BEAST_KING_ENTITY =
            ENTITIES.register("beast_king", ()-> BeastKingEntity.TYPE);
    public static final RegistryObject<EntityType<ThunderFieldCrocodileEntity>> THUNDER_FIELD_CROCODILE_ENTITY =
            ENTITIES.register("thunder_field_crocodile", ()-> ThunderFieldCrocodileEntity.TYPE);
    public static final RegistryObject<EntityType<KirinEntity>> KIRIN_ENTITY =
            ENTITIES.register("kirin_entity", ()-> KirinEntity.TYPE);
    public static final RegistryObject<EntityType<WhitePondEntity>> WHITE_POND_ENTITY =
            ENTITIES.register("white_pond", ()-> WhitePondEntity.TYPE);
    public static final RegistryObject<EntityType<FireFoxEntity>> FIRE_FOX_ENTITY =
            ENTITIES.register("fire_fox", ()-> FireFoxEntity.TYPE);
}
